#编码 文件编码 默认UTF-8
# -*- coding: utf-8 -*-
import  keyword
# 打印Python关键字
print(keyword.kwlist)

# 多行注释
"""
多
行
注
释
"""

#缩进
'''
Python 最具特色的就是使用缩进来表示代码块。缩进的空格数是可变的，但是同一个代码块的语句必须包含相同的缩进空格数。
'''

#标准数据类型
'''
Python 中有六个标准的数据类型：

Number（数字）-- 包含整形和浮点型
String（字符串）
List（列表）
Tuple（元组）
Set（集合）
Dictionary（字典）
Python3 的六个标准数据类型中：

不可变数据（3 个）：Number（数字）、String（字符串）、Tuple（元组）；
可变数据（3 个）：List（列表）、Dictionary（字典）、Set（集合）。
'''
## 字符串举例
x = "Hello World!!!"
print(f"String: {x}, Type: {type(x)}")
## 整型举例
x=100
print(f"Integer: {x}, Type: {type(x)}")
## 浮点型举例
x=3.1415926
print(f"Float: {x}, Type: {type(x)}")
## 布尔型举例
x =True
print(f"Bool: {x}, Type: {type(x)}")
## 复数举例
x = 4 + 3j
y = complex(4, 3)
print(x.real)  # 输出: 4.0（实部以浮点数形式返回）
print(x.imag)  # 输出: 3.0（虚部同样以浮点数形式返回）
print(x.conjugate())  # 输出: (4-3j)
print(isinstance(y,complex))


## 元组举例
x=('1','2','3')  #元组  不可更改
print(f"Tuple: {x}, Type: {type(x)}")
x =  x+ (11,)  # 创建一个新的元组 非增加一个元素，因为元组不可更改
print(f"New Tuple: {x}")


## 列表举例
x = ['1', '2', '3'] #列表 可更改
y = list([1,3,3,5])
print(f"List: {x}, Type: {type(x)}")
print(f"List: {y}, Type: {type(y)}")
x.append('4')  #添加了一个元素
print(f"List: {x}, Type: {type(x)}")

## 字典举例
x = {'name': 'Alice',  'age': 25}  #字典 可更改
y = dict(name='Alice',age=25)
print(f"Dictionary: {x}, Type: {type(x)}")
print(f"Dictionary: {y}, Type: {type(y)}")
x['job'] = '软件工程师' #设置一个属性
print(f"Dictionary: {x}, Type: {type(x)}")



## 集合举例 (不会有重复元素)
x = {1, 2, 3,3, 4, 5}
y = set([6,7,8,9,10])
print(f"Set: {x}, Type: {type(x)}")
print(f"Set: {y}, Type: {type(y)}")
x.add(6)  # 添加元素
print(f"Updated Set: {x}")



# 空行
'''
函数之间或类的方法之间用空行分隔，表示一段新的代码的开始。类和函数入口之间也用两行空行分隔，以突出函数入口的开始。
空行与代码缩进不同，空行并不是 Python 语法的一部分。书写时不插入空行，Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码，便于日后代码的维护或重构。
记住：空行也是程序代码的一部分。
'''

# 同一行显示多条语句

import sys; x = 'Hello World !!!'; sys.stdout.write(x + '\n'); print('Hello World ???')

# 导入模块
## 整个导入
import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
	print (i)
print ('\n python 路径为',sys.path)

##  导入部分函数
from sys import argv,path  #  导入特定的成员
for i in argv:
	print (i)
print ('\n python 路径为',path)


#代码组
'''
一整块叫代码组
if expression :  #这里叫子句
	suite 
elif expression :  #这里叫子句
	suite 
else : 
	suite
'''


# 赋值顺序 （例子： 斐波纳契数列）
'''
n = b
m = a + b
a = n
b = m
'''
a, b = 0, 1
while b < 10:
	print(b)
	a, b = b, a+b


## end 关键字
a, b = 0, 1
while b < 1024:
	print(b, end=',')
	a, b = b, a+b


#if条件语句
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age < 0:
	print("请输入正确的年龄。")
elif age == 1:
	print("相当于 14 岁的人。")
elif age == 2:
	print("相当于 22 岁的人。")
elif age > 2:
	human = 22 + (age -2)*5
	print("对应人类年龄: ", human)
### 退出提示，本地环境下可以使用这样的退出提示使代码更易用
input('点击 enter 键退出')

